package com.health.platform.provider.diseasemonitoring.dao;

import com.health.platform.provider.diseasemonitoring.entity.DiseaseEntity;
import com.health.platform.provider.diseasemonitoring.entity.InfectionEntity;
import com.health.platform.common.core.entity.EchartsEntity;
import com.health.platform.provider.diseasemonitoring.entity.WarningEntity;
import org.apache.ibatis.annotations.MapKey;

import java.util.List;
import java.util.Map;

/**
 * <p>病症监控-传染病监控预警_地方</p>
 * <p>创建日期：2021-02-27</p>
 *
 * @author wangyanlei
 */
public interface InfectionDao {

    /**
     * 表"BI"."TARGET_GW_TABLE"
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    Integer getTargetGWTable(InfectionEntity infectionEntity);

    /**
     * 获取中间部分汇总信息
     * 表"BI"."TARGET_ZB_TABLE"
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    Integer getTargetZBTable(InfectionEntity infectionEntity);

    /**
     * 传染病种排名
     * 表"BI"."TARGET_GW_TABLE"
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    List<EchartsEntity> getKindSort(InfectionEntity infectionEntity);

    /**
     * 传染病人群分布
     * 表"BI"."TARGET_GW_TABLE"
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    List<EchartsEntity> getAgeSort(InfectionEntity infectionEntity);

    /**
     * 传染病职业分布
     * 表"BI"."TARGET_GW_TABLE"
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    List<EchartsEntity> getJobSort(InfectionEntity infectionEntity);

    /**
     * 根据传染病名称代码换取名称
     * 表 NEWBCP.CODOMAIN_DETAIL
     *
     * @param code 参数
     * @return 结果
     */
    String getKeyDesc(String code);
    /**
     * 获取折线图 日 月 年数据
     * 表 NEWBCP.CODOMAIN_DETAIL
     *
     * @param infectionEntity 参数
     * @return 结果
     */
    @MapKey("key")
    List<EchartsEntity> getLineByDate(InfectionEntity infectionEntity);
    /**
     * 根据预警级别类型查询符合条件的病例
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/3 17:27
     */
    List<WarningEntity> getWarning(DiseaseEntity parm);
    /**
     * 查询码表
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/4 17:25
     */
    List<EchartsEntity> getDict();
    /**
     * 查询传染病预警记录表
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/11 9:36
     */
    List<DiseaseEntity> getWarningHistory();
    /**
     * 插入传染病预警记录表
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/11 15:34
     */
    int insertWaringRecord(DiseaseEntity dieease);
    /**
     * 查询传染病预警历史与病例信息
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/11 15:51
     */
    List<DiseaseEntity> getWarningHistoryInfo(DiseaseEntity diseaseEntity);
    /**
     * 更新预警信息为已查看
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/12 9:09
     */
    int updateWaringRemark(DiseaseEntity diseaseEntity);
}
